/*
 * CS_MOVE_MOB.cpp
 *
 *  Created on: 2013. 5. 21.
 *      Author: the2
 */

#include "../../User.h"
#include "CS_MOVE_MOB.h"

#include "../../NLogic/Static.h"

namespace ProjectZ { namespace NCommand { namespace NAction {

void CS_MOVE_MOB::OnExecute(User * pUser, ::Network::Packet * pPacket)
{
	/*
	 * 몹에만 해당되며 몹이 추적 이동시 사용됨
			CS_MOVE_MOB	0x0414	17
			4	unsigned int	GID
			2	posx	x 좌표
			2	posy	y 좌표
			2	degree	이동벡터정보
			2	speed	속도
			2	distance	거리
			1	char	이동 타입 (0: PATROL 일반 이동 1: TRACE 추적 이동)

			몹에만 해당되며 몹이 추적 이동시 사용됨
			SC_MOVE_MOB	0x0415	17
			4	unsigned int	GID
			2	posx	x 좌표
			2	posy	y 좌표
			2	degree	이동벡터정보
			2	speed	속도
			2	distance	거리
			1	char	이동 타입 (0: PATROL 일반 이동 1: TRACE 추적 이동)
	 *
	 */

	NLogic::Space * pSpace = pUser->GetSpace();
	if (NULL == pSpace)
	{
		DEBUGLOG("CS_MOVE_MOB NULL == pSpace");
		return;
	}

	PREPARE_PACKET;

	unsigned int GID = 0;
	int16_t x = 0;
	int16_t y = 0;
	int16_t degree = 0;
	int16_t speed = 0;
	int16_t distance = 0;
	int8_t movetype = 0;

	* pPacket >> GID >> x >> y >> degree >> speed >> distance >> movetype;

	// move_mob 에 경우 서버에서 좌표를 확인할 필요가 없음... // 고성종 차장.. 확인
//
//	NLogic::Monster * pMonster = pUser->GetSpace()->GetMonster(GID);
//	if (NULL != pMonster)
//	{
//		pMonster->GetData().x = x;
//		pMonster->GetData().y = y;
//		pMonster->GetData().degree = degree;
//	}

	::Network::Packet * pNoti = ::Network::GETPACKETPOOL()->SEND_NEW();
	* pNoti << GID << x << y << degree << speed << distance << movetype;
	pNoti->MakePacket(CMD_SC_MOVE_MOB);

	pSpace->SendAllExceptMe(pNoti, pUser);
}

} /*NAction*/ } /*NCommand*/ } /*ProjectZ*/
